/**
 * SessionId 管理  缓存服务器返回的SessionId 并在请求时带上.
 * Author: david.deng<david.deng@jcinfotech.com>
 * Date: 2022/02/16
 */
import { useCache } from '../../hooks/global/useCache';

const { wsCache } = useCache('sessionStorage');

export class SessionManager {
  SessionCackeKey = 'SessionCackeKey';

  handleResponseHeader(headers) {
    if (headers && (headers.sessionid || headers.sessionId)) {
      this.setSessionCache(headers.sessionid || headers.sessionId);
    }
  }

  getSessionId() {
    return wsCache.get(this.SessionCackeKey) || '';
  }

  setSessionCache(sessionId) {
    console.log(`更新 sessionId : ${sessionId}`);
    return sessionId ? wsCache.set(this.SessionCackeKey, sessionId) : wsCache.set(this.SessionCackeKey, null);
  }
}

export default new SessionManager();
